package com.hlkj.pay.infrastructure.model.merchant;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hlkj.framework.mybatis.core.dataobject.BaseDO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
* 商户微信支付宝认证信息
* @TableName t_merchant_access_auth
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_merchant_access_auth")
public class MerchantAccessAuthDO extends BaseDO {
    /**
    * 进件id
    */
    private Long accessId;
    /**
    * 通道编码
    */
    private String code;
    /**
    * 序列号-第三方
    */
    private String serialCode;
    /**
    * 商户商户号
    */
    private String sn;
    /**
    * 类型，1：微信 2：支付宝
     * @see com.hlkj.pay.enums.PayEnums.PAY_TYPE
    */
    private Integer type;
    /**
    * 0：未申请 1 审核中 2 审核通过 3 待确认联系信息 4 待账户验证 6 已冻结 7 已作废 8 授权成功 9 审核驳回
     * @see com.hlkj.pay.enums.MerchantEnum.MERCHANT_AUTH_STATUS
    */
    private Integer status;
    /**
    * 认证url
    */
    private String authUrl;
    /**
    * 认证url
    */
    private String authCode;
    /**
    * 驳回参数
    */
    private String rejectParam;
    /**
    * 驳回原因
    */
    private String rejectReason;
    /**
    * 真实商户号 服务在微信支付宝的商户号
    */
    private String mchId;
    /**
    * 子商户号
    */
    private String subMchId;
    /**
     * 其他json字段
     */
    private String channelJson;
    /**
     * qr 数组
     */
    @TableField(exist = false)
    private byte[] qrCodeArray;


    /**
     * 开关状态 0:关 1:开
     */
    private Integer state;

    /**
     * 轮询权重
     */
    private Integer weight;
    /**
     * 是否轮询
     * @see com.hlkj.pay.enums.CommonEnum.YES_NO_TYPE
     */
    @Schema(description = "是否轮询：1-是；0-否；")
    private Integer limitRouter;

    @Schema(description = "0 未授权，1 已授权 ，2 已销户 ，3 报备商户号不存在")
    private Integer authStatus;

    @TableField(exist = false)
    private MerchantAppChannelDO merchantAppChannelDO;
}
